A programmable execution service (“PES”) can provide computing resources for executing applications on a permanent or an as-needed basis. The computing resources provided by a PES may include various types of resources, such as data processing resources, data storage resources, data communication resources, and the like. Each type of computing resource may be general-purpose or may be available in a number of specific configurations. For example, data processing resources may be available as virtual machine instances (“instances”). The instances may be configured to execute applications, including World Wide Web (“Web”) servers, application servers, media servers, database servers, and the like. Data storage resources may include file storage devices, block storage devices, and the like. The resources provided by a PES can typically be purchased and utilized according to various financial models.
In order to maintain and upgrade a distributed software application, such as an application executing on a PES, it is commonly necessary to apply software updates to the application. For instance, it may be necessary to periodically apply software updates to various components of an application executing on a PES in order to implement security patches, bug fixes, or feature improvements. An update might install new software components, patch existing software components, remove software components from the application, and/or perform other tasks.
Updating an application executing on a PES (a “PES application”) can be a complex process for various reasons. One reason is that multiple software developers and/or software development teams might concurrently develop updates to the PES application. A security development team might develop security updates for the application, a maintenance development team might develop bug fix updates for the application, and a new feature development team might develop new feature updates for the application. All of this type of development typically occurs in parallel, thereby resulting in the possibility that multiple different updates might be available for an application at any given time.
Disparate business and operational requirements can also cause updating an application executing on a PES to be a complex process. For instance, certain types of businesses and applications might require near 100% availability of an application, thereby making it difficult if not impossible to take the application offline to perform an update. Other types of businesses and PES applications might not have such strict availability requirements. As another example, it may be unacceptable for some businesses to incur costs for additional computing resources utilized to assist in performing an update to a PES application. Other businesses might be willing to incur a charge for additional computing resources used when performing an update if the update can be performed quickly and with a minimal possibility of an availability outage.
It is with respect to these and other considerations that the disclosure made herein is presented.